package vista.juego;

import modelo.policiales.Policia;

public class VistaTiempoConsola {

	private Policia policia;
	private int tiempoTotal;
	private int diasTotales;
	private int horaInicial;
	private int horasPorDia;

	public VistaTiempoConsola(Policia policia) {
		this.policia = policia;
		this.tiempoTotal = policia.getInvestigacion().getTiempoTotal();
		this.horasPorDia = 24;
		this.diasTotales = tiempoTotal / this.horasPorDia;
		this.horaInicial = 7;
	}

	public String imprimirTiempoRestante() {
		
		int tiempoDisponible = this.policia.getInvestigacion().getTiempoDisponible();
		
		int diasDisponibles =  tiempoDisponible / this.horasPorDia;
		
		int diaActual = (this.diasTotales) - diasDisponibles;
		
		int resto = tiempoDisponible % this.horasPorDia;
		
		int tiempoActual = this.horasPorDia - resto +17;
		
		while (tiempoActual >= this.horasPorDia){
			tiempoActual = tiempoActual- this.horasPorDia;
			diaActual = diaActual +1;
		}
		
		
		String dia = this.obtenerNombreDelDiaSegunElNumero(diaActual) ;
		String hora = String.valueOf( tiempoActual );
		
		String diaYHoraActual = dia + " a las " + hora + "hs.";
		
		return diaYHoraActual;
	}
	
	private String obtenerNombreDelDiaSegunElNumero(int numeroDeDia){
		
		String diaObtenido=null;
		
		switch (numeroDeDia) {
			
		case 1: 
			diaObtenido = "Lunes";
			break;
		
		case 2: 	
			diaObtenido = "Martes";
			break;
		
		case 3: 
			diaObtenido = "Miercoles";
			break;
		
		case 4: 
			diaObtenido = "Jueves";
			break;
			
		case 5: 
			diaObtenido = "Viernes";
			break;
			
		case 6: 
			diaObtenido = "Sabado";
			break;
			
		case 7: 
			diaObtenido = "Domingo";
			break;
		}
		
		if (numeroDeDia > 7)
			diaObtenido = this.obtenerNombreDelDiaSegunElNumero( numeroDeDia - 7);
		
		return diaObtenido;
	}

	public String getDiaLimite() {
	
		return this.pasarHorasADiaYHora(this.tiempoTotal);
		
	}
	

	private String pasarHorasADiaYHora(int horas){
		
		int diasDisponibles =  (horas / this.horasPorDia) +1;
		
		int horasDisponibles = (horas % this.horasPorDia) + this.horaInicial;
		
		while (horasDisponibles >= this.horasPorDia){
			horasDisponibles =horasDisponibles- this.horasPorDia;
			diasDisponibles = diasDisponibles +1;
		}
		
		String nombreDia = this.obtenerNombreDelDiaSegunElNumero(diasDisponibles);
		
		String hora = String.valueOf( horasDisponibles );
		
		return (nombreDia + " a las " + hora + "hs.");
		
	}

	
}
